package com.lingshu.app.model.register;

import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;

import com.google.gson.annotations.JsonAdapter;
import com.lingshu.app.BR;
import com.lingshu.app.model.adapters.DateAdapter;
import com.lingshu.app.model.enums.ImagePart;

import java.io.Serializable;
import java.util.Date;

/**
 * @author 于定金
 * @version 1.0
 * @Date 2024/1/8 15:16
 * @Description
 */
public class RegisterScreenshotResponse extends BaseObservable implements Serializable {
    private Long id;
    private String title;
    private Long registerId;
    private Long imageId;
    private Integer currentFrame;
    private String storagePath;
    private Boolean isAI;
    private String AIData;
    private String creater;
    @JsonAdapter(DateAdapter.class)
    private Date createTime;
    private String updater;
    @JsonAdapter(DateAdapter.class)
    private Date updateTime;
    private Boolean isDeleted;
    private ImagePart parts;
    private Boolean canDownloadFlag = true;
    private String localStoragePath;
    private Boolean isUsedToReport;
    private Boolean autoDownload;
    private Boolean allowDelete;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Long getRegisterId() {
        return registerId;
    }

    public void setRegisterId(Long registerId) {
        this.registerId = registerId;
    }

    public Long getImageId() {
        return imageId;
    }

    public void setImageId(Long imageId) {
        this.imageId = imageId;
    }

    public Integer getCurrentFrame() {
        return currentFrame;
    }

    public void setCurrentFrame(Integer currentFrame) {
        this.currentFrame = currentFrame;
    }

    public String getStoragePath() {
        return storagePath;
    }

    public void setStoragePath(String storagePath) {
        this.storagePath = storagePath;
    }

    public Boolean getAI() {
        return isAI;
    }

    public void setAI(Boolean AI) {
        isAI = AI;
    }

    public String getAIData() {
        return AIData;
    }

    public void setAIData(String AIData) {
        this.AIData = AIData;
    }

    public String getCreater() {
        return creater;
    }

    public void setCreater(String creater) {
        this.creater = creater;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Boolean getDeleted() {
        return isDeleted;
    }

    public void setDeleted(Boolean deleted) {
        isDeleted = deleted;
    }

    @Bindable
    public ImagePart getParts() {
        return parts;
    }

    public void setParts(ImagePart parts) {
        this.parts = parts;
        notifyPropertyChanged(BR.parts);
    }

    @Bindable
    public Boolean getCanDownloadFlag() {
        return canDownloadFlag;
    }

    public void setCanDownloadFlag(Boolean canDownloadFlag) {
        this.canDownloadFlag = canDownloadFlag;
        notifyPropertyChanged(BR.canDownloadFlag);
    }

    @Bindable
    public String getLocalStoragePath() {
        return localStoragePath;
    }

    public void setLocalStoragePath(String localStoragePath) {
        this.localStoragePath = localStoragePath;
        notifyPropertyChanged(BR.localStoragePath);
    }

    @Bindable
    public Boolean getIsUsedToReport() {
        return isUsedToReport;
    }

    public void setIsUsedToReport(Boolean isUsedToReport) {
        this.isUsedToReport = isUsedToReport;
        notifyPropertyChanged(BR.isUsedToReport);
    }

    public Boolean getAutoDownload() {
        return autoDownload;
    }

    public Boolean getAllowDelete() {
        return allowDelete;
    }
}
